package chapter5.lessons.tcpDemo01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @Project ：learn_java
 * @File ：Server.java
 * @IDE ：IntelliJ IDEA
 * @Author ：自由如风间
 * @Date ：2025/3/12 22:43
 * @Description ：For study.
 */

public class Server {
    public static void main(String[] args) throws IOException {
        // 接收数据

        ServerSocket ss = new ServerSocket(10000);

        // 监听客户端的连接
        Socket socket = ss.accept();

        // 从连接通道中获取输入流读取数据
        // NOTE:
        /*
        在这里只单独使用io流的话，读取的中文会是乱码
        因此还需要字符流
        */
        // 以下三行的后两行是可选项，根据实际情况添加
        InputStream is = socket.getInputStream();
        // 有了这行，才可以识别中文
        InputStreamReader isr = new InputStreamReader(is);
        // 还可以使用缓冲流提高效率
        BufferedReader br = new BufferedReader(isr);

        // 上三行也可以一行搞定
        // BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        int b;
        while ((b = br.read()) != -1) {
            System.out.print((char) b);
        }

        // 释放资源
        socket.close();
        ss.close();
    }
}
